package com.marvels.financial.consum;
import java.util.List;
import java.util.Map;

import com.marvels.common.dto.MarvelsResultDTO;
import com.marvels.financial.loan.dto.InsurancePolicyDTO;
import com.marvels.financial.loan.dto.McamLoanApplyContactInfo;
import com.marvels.financial.loan.dto.McamLoanApplyInfoDTO;
import com.marvels.financial.loan.dto.ProtocolTemplateInfoDTO;
import com.marvels.financial.loan.dto.WaitLendInfoDTO;


public interface FinancialConsumerApproveApi {
	
	/**
	 * 更新进件表状态
	 * @param mcamLoanApplyInfoDTO
	 * @return
	 */
	public int modifyLoanApplyInfo(McamLoanApplyInfoDTO mcamLoanApplyInfoDTO);
	
	
	
	/**
	 * 查询进件信息
	 * @param mcamLoanApplyInfoDTO
	 * @return
	 */
	public McamLoanApplyInfoDTO selectLoanApplyInfo(McamLoanApplyInfoDTO mcamLoanApplyInfoDTO);
	
	
	
	
	/**
	 * 根据loanId查询联系人信息
	 * @param mcamLoanApplyInfoDTO
	 * @return
	 */
	public List<McamLoanApplyContactInfo> selectContactByLoanId(McamLoanApplyContactInfo mcamLoanApplyContactInfo);
	
	
	
	/**
	 * 根据loanId查询保单信息
	 * @param mcamLoanApplyInfoDTO
	 * @return
	 */
	public List<InsurancePolicyDTO> selectInsuranceByLoanId(InsurancePolicyDTO mcamLoanInsurancePolicyInfo);
	
	
	/**
	 * 根据产品类别  资金源code查询待放款的进件
	 * @param mcamLoanApplyInfoDTO
	 * @return
	 */
	public List<String> selectWaitLendInfo(WaitLendInfoDTO infoDTO);
	
	/**
	 * 执行放款申请操作
	 * @param loanIds
	 */
	public MarvelsResultDTO loanOperation(String loanIds);
	
	
	/**
	 * 通过资金源查询签名合同模板
	 * @param infoDTO
	 * @return
	 */
	public List<ProtocolTemplateInfoDTO> findProtocalTemplateList(McamLoanApplyInfoDTO infoDTO);
	
	/**
	 * 通过loanId查询上海资信需要基本信息
	 * @param McamLoanApplyInfoDTO
	 * @return
	 */
	public Map<String, Object> selectShzxNeedLoanApplyInfo(McamLoanApplyInfoDTO mcamLoanApplyInfoDTO);
}